Definition (polynomial-time Karp reducible)

A language L{0,1}L \subseteq \{0,1\}^* is polynomial-time Karp reducible (polynomial-time reducible) to language L{0,1}L' \subseteq \{0,1\}^*, denoted LpLL \leq_p L', if there is a polynomial-time computable function f:{0,1}{0,1}f: \{0,1\}^* \to \{0,1\}^* such that x{0,1}x \in \{0,1\}^*, xLx \in L if and only if f(x)Lf(x) \in L'.

Theorem

  1. (transitivity) If LpLL \leq_p L' and LpLL' \leq_p L'', then LpLL \leq_p L''.
  2. If language LL is NP-hard and L𝐏L \in \mathbf{P}, then P=NP
  3. If language LL is NP-complete, then L𝐏L \in \mathbf{P} if and only if P=NP.

Definition (many-one reducible)

A many-one reduction (many-one reducible, m-reducible) from formal language AA to BB (with alphabets Σ\Sigma and Γ\Gamma respectively) is a total computable function f:ΣΓf: \Sigma^* \to \Gamma^* such that each word ww is in AA iff f(w)f(w) is in BB.

Denote as AmBA \leq_m B.

Notes

See also


References

  1. S. Arora, B. Barak. Computational Complexity: A Modern Approach, Cambridge University Press, 2009, pp. 42-43.
  2. https://courses.cs.washington.edu/courses/cse417/21wi/lecture/21-reductions1.pdf
  3. https://en.wikipedia.org/wiki/Many-one_reduction
  4. https://www.cs.cmu.edu/~avrim/451/lectures/lect1102.pdf